/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.iprojectmanager.views;

import java.text.SimpleDateFormat;
import java.io.*;

import javax.servlet.*;
import javax.servlet.http.*;

import com.iprojectmanager.managers.*;
import com.iprojectmanager.entities.*;
/**
 *
 * @author robert
 */
public class VistaListaProyectos extends Vista {

    public void mainView(PrintWriter out,HttpServletRequest request)
    throws ServletException, IOException {
        try {
            HttpSession user = request.getSession();
            Administrador root = (Administrador)user.getAttribute("user");
            out.println(Utilities.getDocType());
            out.println("<html>" + Utilities.getHead("Proyectos registrados"));
            out.println("<body>");
            out.println("   <div id=\"container\">");
            out.print(Utilities.getIntro("Lista de proyectos",root));
            out.println(Utilities.getMenu());
            out.println("       <div id=\"pageContent\">");
            out.println("           <div id=\"selection1\">");
            out.println("           " + this.getListaProyectos());
            out.println("         </div>");
            out.println("       </div>");
            out.println(Utilities.getFooter());
            out.println("   </div>");
            out.println("</body>");
            out.println("</html>");
            out.close();
        } finally {
            out.close();
        }
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
    * Handles the HTTP <code>GET</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        if(request.getParameter("proyecto") == null)
            mainView(response.getWriter(),request);
        else
            changeView(response.getWriter(),request.getParameter("proyecto"));
    }

    /**
    * Handles the HTTP <code>POST</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        doGet(request, response);
    }

    protected void changeView(PrintWriter out,String proyecto){
        try {
            out.println(Utilities.getDocType());
            out.println("<html>" + Utilities.getHead("Proyectos registrados"));
            out.println("<body>");
            out.println("   <div id=\"container\">");
            out.print(Utilities.getIntro("Descripci&oacute;n de royecto"));
            out.println(Utilities.getMenu());
            out.println("       <div id=\"pageContent\">");
            out.println("           <div id=\"selection1\">");
            out.println("           " + getDescripcionProyecto(proyecto));
            out.println("         </div>");
            out.println("       </div>");
            out.println(Utilities.getFooter());
            out.println("   </div>");
            out.println("</body>");
            out.println("</html>");
            out.close();
        } finally {
            out.close();
        }
    }

    /**
    * Returns a short description of the servlet.
    */
    @Override
    public String getServletInfo() {
        return "Lista de proyectos";
    }
    // </editor-fold>

    protected String getListaProyectos(){
        StringBuffer str = new StringBuffer();
        ProjectManager pm = new ProjectManager();
        SimpleDateFormat sdf = new SimpleDateFormat("MMMMM dd, yyyy");

        str.append("<div id=\"selection2\">\n");
	str.append("	<h3><span>Proyectos</span></h3>\n");
	str.append("	<p class=\"p1\"><span>\n");
	str.append("        <table border=\"1\" cellspacing=\"1\">\n");
	str.append("            <tr>\n");
	str.append("                <th><b>Nombre</b></th>\n");
	str.append("                <th><b>L&iacute;der del proyecto</b></th>\n");
	str.append("                <th><b>Fecha de Inicio</b></th>\n");
	str.append("                <th><b>Fecha de Entrega</b></th>\n");
	str.append("		</tr>\n");
        for(Proyecto p : pm.getProyectos()){//Por cada proyecto ordenada por fecha de fin, inicio
            str.append("            <tr>\n");
            str.append("                <td><a href=\"./listarproyectos?proyecto="
                    + p.getId() + "\">" + p.getNombre() + "</a></td>\n");
            str.append("                <td>" + p.getLider().getNombre() + "</td>\n");
            str.append("                <td>" + sdf.format(p.getFechainicio()) + "</td>\n");
            str.append("                <td>" + sdf.format(p.getFechafin()) + "</td>\n");
            str.append("            </tr>\n");
        }
	str.append("        </Table>\n");
	str.append("	</span></p>\n");
	str.append("</div>\n");
        str.append("</span></p>\n");

        return str.toString();
    }

    public String getDescripcionProyecto(String proy){
        StringBuffer str = new StringBuffer();
        Proyecto p = (new ProjectManager()).getProyecto(Integer.parseInt(proy));
        SimpleDateFormat sdf = new SimpleDateFormat("MMMMM dd, yyyy");

        str.append("<div id=\"selection2\">\n");
	str.append("	<h3><span>Proyecto</span></h3>\n");
	str.append("	<p class=\"p1\"><span>\n");
	str.append("        <b>Nombre: </b>" + p.getNombre() + "<br>\n");
	str.append("        <b>L&iacute;der del proyecto: </b>" + p.getLider().getNombre() + "<br>\n");
	str.append("        <b>Fecha de Inicio: </b>" + sdf.format(p.getFechainicio()) + "<br>\n");
	str.append("        <b>Fecha de Entrega: </b>" + sdf.format(p.getFechafin()) + "<br>\n");
	str.append("	</span></p>\n");
	str.append("</div>\n");
        str.append("</span></p>\n");

        return str.toString();
    }
}
